package com.profgj.profgj.validater;

import com.profgj.profgj.utils.EmptyUtils;
import com.profgj.profgj.vo.ProjectImportantDocumentVo;
import org.springframework.validation.Errors;
import org.springframework.validation.Validator;

/**
 * 项目要件参数校验器
 */
public class ProjectImportantDocumentVoValidator implements Validator {
    /**
     * 类型校验
     * @param clazz 类对象
     * @return
     */
    @Override
    public boolean supports(Class<?> clazz) {

        // 类型比对
        return clazz.equals(ProjectImportantDocumentVo.class);
    }
    /**
     * 验证逻辑
     * @param target    目标对象
     * @param errors    错误信息保存对象
     */
    @Override
    public void validate(Object target, Errors errors) {

        // 判断对象是否为空
        if(target == null) {
            errors.rejectValue("",null,"企业对象不能为空");
        }

        // 强制转换
        ProjectImportantDocumentVo projectImportantDocumentVo = (ProjectImportantDocumentVo)target;
        // 判断字段是否为空
        if(!EmptyUtils.isLongEmpty(projectImportantDocumentVo.getProjectBaseInfoId())) {
            errors.rejectValue("project_base_info_id",null,"关联项目基本情况id不能为空");
        }
        // 判断字段是否为空
        if("".equals(projectImportantDocumentVo.getApprovalTimeNumber())) {
            errors.rejectValue("approval_time_number",null,"审批核准备案时间及文号不能为空");
        }
        // 判断字段是否为空
        if("".equals(projectImportantDocumentVo.getPolicyStandardsInfo())) {
            errors.rejectValue("policy_standards_info",null,"产业政策及行业标准符合情况不能为空");
        }
        // 判断字段是否为空
        if("".equals(projectImportantDocumentVo.getEnergySavingApprovalTimeNumber())) {
            errors.rejectValue("energy_saving_approval_time_number",null,"节能审查批复时间及文号不能为空");
        }
        // 判断字段是否为空
        if("".equals(projectImportantDocumentVo.getEnvironmentalApprovalTimeNumber())) {
            errors.rejectValue("environmental_approval_time_number",null,"节能审查批复时间及文号不能为空");
        }
        // 判断字段是否为空
        if("".equals(projectImportantDocumentVo.getEnvironmentalReview())) {
            errors.rejectValue("environmental_review",null,"环评复核情况不能为空");
        }
        // 判断字段是否为空
        if("".equals(projectImportantDocumentVo.getApprovalOfConstructionPermit())) {
            errors.rejectValue("approval_of_construction_permit",null,"施工许可审批时间及文号不能为空");
        }

    }
}
